function request(oSelect) {
	//récupération des tissus correspondants à l'organe sélectionné
	var value = oSelect.options[oSelect.selectedIndex].value;
	var elt = document.getElementsByClassName("autre");
	var elt2 = document.getElementsByClassName("autre2");
	var temp = document.getElementsByClassName("infos2");
	
	document.getElementById("qte").value="";
	document.getElementById("vol").value="";
	document.getElementById("date").value="";
	
	if(value!="autre"){
		for (var i=0; i<elt.length; i++){elt[i].style.display="none";}
		for(var j=0; j<elt2.length; j++){elt2[j].style.display="none";}
		
		for (var i=0; i<temp.length; i++){temp[i].style.display="none";}
		document.getElementById("type").style.display="none"; 
		document.getElementById("type2").style.display="none";
		document.getElementById("tissuSelect2").style.display="none";
		var var1 = encodeURIComponent(value);
		var xhr = getXMLHttpRequest();

		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
				readData(xhr.responseXML, value);
			} 
		};
		 
		xhr.open("POST", "get_tissu.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("groupe_organe=" + var1);
	}
	else{ //on masque les champs suivants
		for (var i=0; i<elt.length; i++){elt[i].style.display="inline";}
		document.getElementById("tissuSelect").style.display="none";
		document.getElementById("tissuSelect2").style.display="none";
		for(var j=0; j<elt2.length; j++){elt2[j].style.display="inline";}
		for (var i=0; i<temp.length; i++){temp[i].style.display="inline";}				
	}
}

// remplissage du select en fonction des résultats de la recherche de tissu
function readData(oData, organe) {
	//liste des tissus autorisés
	var liste = new Array("CO1","CO2","CF1","CF2","CT1","CT2","CT3","CT4","CT5","CT6","CP1","CP2","Cervelet","Tronc cérébral","Hypothalamus",
	"Thalamus",	"Mésencéphal","Striatum","ADN (PS)","ADNg extrait cellulaire M.O", "ADNg extrait cellulaire Muscle","Moëlle épinière",
	"ADNg TISSUS CONGELES-PARAFFINES","ADNg euthanasie","Tissus musculaire", "Peau","Tissus musculaire milieu","Tissus adipeux","Coeur","Foie",
	"Poumons","Reins","Instestins","Rate","Pancréas","Testicules","Ovaire","Yeux","Bulbes olfactifs","Muqueuse olfactive","VNO","banque plasma",
	"Lignée primaire fibroblastes moëlle osseuse","Lignée primaire fibroblastes muscle","Lignée primaire fibroblastes peau",
	"Lignée stable fibroblastes moëlle osseuse","Lignée stable fibroblastes muscle","Lignée stable fibroblastes peau",
	"Lignée stable tissus adipeux","Lignée primaire tissus adipeux","Lignée neuronale","Cellules souche neuronales embryonnaires", 
	"Cellules souches mésenchymateuses","Cellules souches hématopoïétiques","Cellules souches pluripotentes de fibroblastes",
	"Lignée primaire lymphovcytes","Lignée stable lymphocytes","Cervelet","Cordon ombilical","Corps","Placenta","Reste cerveau","Yeux");
	var liste2 = new Array();
	
	var nodes = oData.getElementsByTagName("item");
	var oSelect = document.getElementById("tissuSelect");
	var oSelect2 = document.getElementById("tissuSelect2");
	var oOption, oInner;
	 
	oSelect.innerHTML = "";
	oSelect2.innerHTML = "";
	
	ajouter_option(oSelect, "Sélection", "none");
	ajouter_option(oSelect2, "Sélection", "none");
	
	//remplissage du select de type_tissu et autre_type_tissu
	for (var i=0, c=nodes.length; i<c; i++) {
		var name = nodes[i].getAttribute("name");
		oOption = document.createElement("option");
		oInner  = document.createTextNode(name);
		oOption.value = nodes[i].getAttribute("id");
		oOption.appendChild(oInner);
		if(contains(liste,name)){
			oSelect.appendChild(oOption);
			liste2.push(nodes[i].getAttribute("name"));
		}
		else{
			oSelect2.appendChild(oOption);
		}
	}
	if(organe=="Cerveau"){
		if(!(contains(liste2,"Thalamus"))){	
			ajouter_option(oSelect, "Thalamus", "Thalamus");	
		}
	}
	else if(organe=="Cellule"){
		var liste3=new Array("Lignée primaire fibroblastes moëlle osseuse","Lignée primaire fibroblastes muscle","Lignée primaire fibroblastes peau",
		"Lignée stable fibroblastes moëlle osseuse","Lignée stable fibroblastes muscle","Lignée stable fibroblastes peau",
		"Lignée stable tissus adipeux","Lignée primaire tissus adipeux","Lignée neuronale","Cellules souche neuronales embryonnaires", 
		"Cellules souches mésenchymateuses","Cellules souches hématopoïétiques","Cellules souches pluripotentes de fibroblastes",
		"Lignée primaire lymphovcytes","Lignée stable lymphocytes");
		for(var i=0;i<liste3.length;i++){
			if(!(contains(liste2,liste3[i]))){	
				ajouter_option(oSelect, liste3[i], liste3[i]);	
			}
		}	
	}
	else if(organe=="Embryon"){
		var liste3=new Array("Cervelet","Cordon ombilical","Corps","Placenta","Reste cerveau","Yeux");
		for(var i=0;i<liste3.length;i++){
			if(!(contains(liste2,liste3[i]))){	
				ajouter_option(oSelect, liste3[i], liste3[i]);	
			}
		}	
	}
	else if(organe=="Organes olfactifs"){
		if(!(contains(liste2,"VNO"))){	
			ajouter_option(oSelect, "VNO", "VNO");	
		}
	}
	
	ajouter_option(oSelect, "Autre", "autre1");
	ajouter_option(oSelect, "Nouveau", "autre");
	
	if(nodes.length!=0){ oSelect.style.display = "inline"; }		
	else{ oSelect.style.display = "none"; }
}

function ajouter_option(select, nom, valeur){
	//ajout d'option au select
	var option = document.createElement("option");
	var texte = document.createTextNode(nom);
	option.value = valeur;
	option.appendChild(texte);
	select.appendChild(option);
}
	

function afficher(oSelect){
	//affichage du select boite en fonction du choix du select tissu
	var value = oSelect.options[oSelect.selectedIndex].value;
	var elt = document.getElementsByClassName("autre2");
	var select = document.getElementById("tissuSelect2");
	var temp = document.getElementsByClassName("infos2");
	
	afficherBoite(value, null);
	
	document.getElementById("qte").value="";
	document.getElementById("vol").value="";
	document.getElementById("date").value="";
	
	if(value=="autre"){ // si nouveau tissu
		for (var i=0; i<elt.length; i++){elt[i].style.display="inline";}
		select.style.display="none";
	}
	else if(value=="autre1"){ //si autre tissu
		select.style.display="inline";
		for (var i=0; i<temp.length; i++){temp[i].style.display="none";}
		for (var i=0; i<elt.length; i++){elt[i].style.display="none";}
	}
	else if(value=="none"){ // si aucune sélection
		for (var i=0; i<temp.length; i++){temp[i].style.display="none";}
		select.style.display="none";
	}	
	else{
		select.style.display="none";
		for (var i=0; i<temp.length; i++){temp[i].style.display="inline";}
		for (var i=0; i<elt.length; i++){elt[i].style.display="none";}
	}
}

function afficher2(oSelect){
	//affichage du select localisation en fonction de la boite sélectionnée
	var value = oSelect.options[oSelect.selectedIndex].value;
	var temp = document.getElementsByClassName("infos2");
	
	document.getElementById("qte").value="";
	document.getElementById("vol").value="";
	document.getElementById("date").value="";
	
	if(value!="none"){
		for (var i=0; i<temp.length; i++){temp[i].style.display="inline";}
	}
	else{
		for (var i=0; i<temp.length; i++){temp[i].style.display="none";}
	}
}

function afficherBoite(value){
	//récupération du nom des boites dans la base de données en fonction du tissu et de l'animal sélectionnés
	
	if(value!="none"){		
		var var1 = encodeURIComponent(value);
		var xhr = getXMLHttpRequest();

		xhr.onreadystatechange = function() {
			if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {
				readData2(xhr.responseXML, "boite");
			} 
		};
		 
		xhr.open("POST", "get_boite.php", true);
		xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xhr.send("tissu="+var1);
	}
	else{
		//masquage et réinitialisation des select suivant si aucun tissu n'a été selectionné
		/*document.getElementById("type2").style.display="none";
		document.getElementById("type2").value="none";
		document.getElementById("type").style.display="none";
		document.getElementById("tissuSelect2").style.display="none";
		document.getElementById("tissuSelect2").value="none";
		document.getElementById("num").value="";
		document.getElementById("date").value="";
		document.getElementById("qte").value="";
		document.getElementById("nom").value="";*/
	}
}

function afficheNew(oSelect, id){
	//affichage infos en fonstion de la localisation sélectionnée
	var value = oSelect.options[oSelect.selectedIndex].value;
	if(value=="autre"){ document.getElementById(id).style.display="inline"; }
	else{ document.getElementById(id).style.display="none"; }
}

function contains(arr, findValue) {
	// fonction qui permet de savoir si une valeur est présente dans une liste
    var i = arr.length;
     
    while (i--) {
        if (arr[i] === findValue) return true;
    }
    return false;
}

function verif_form(f){ 
	//vérification du formulaire avant l'envoie au serveur
	var dateFOk = verifDate2(f.date);
	var groupeOk = verifSelect(f.groupe);
	var tissu_newOk = true;
	var tissu2Ok = true;
	var tissuOk = true;
	var qte = true;
	if (typeof f.qte != "undefined") {
		var qte = (f.qte.value);
		console.log(f.qte.value);
	}
	if(f.groupe.value=="autre"){tissu_newOk = verif(f.autre_tissu);}
	else{ 
		tissuOk = verifSelect(f.tissu);
		if(f.tissu.value=="autre1"){tissu2Ok = verifSelect(f.tissu2);}
	}
	var locOk = verifSelect(f.loc);
	var boiteOk = verifSelect(f.boite);
	
	if(dateFOk && groupeOk && tissu_newOk && tissuOk && tissu2Ok && locOk && boiteOk && qte){
		return true;
	}
	else{
		alert("Veuillez remplir correctement tous les champs");
		return false;
	}
}

function readData2(oData,nomSelect) {
	console.log("readData2");
	//remplissage du select donné par nomSelect
	var nodes = oData.getElementsByTagName("item");
	var oSelect = document.getElementById(nomSelect);
	var oOption, oInner;
	 
	oSelect.innerHTML = "";	
	ajouter_option(oSelect, "Sélection", "none");
	
	for (var i=0, c=nodes.length; i<c; i++) {
		console.log("name=>"+name);
		var name = nodes[i].getAttribute("name");
		var unite = nodes[i].getAttribute("unite");
		
		ajouter_option(oSelect,name,name, unite);
	}
}
